package me.zhengjie.tool;



import java.math.BigDecimal;

public class NumberUtil {

    /**
     * 检查空或零，空或零返回TRUE
     *
     * @param parm
     * @return
     */
    public static boolean isNullOrZero(BigDecimal parm) {
        if (ValidateUtil.isEmpty(parm) || parm.compareTo(new BigDecimal(0)) == 0) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * 空值处理，转为零
     *
     * @param parm
     * @return @
     */
    public static Integer nullDispose(Integer parm) {
        if (ValidateUtil.isEmpty(parm)) {
            return 0;
        }
        return parm;
    }

    /**
     * 空值处理，转为零
     *
     * @param parm
     * @return @
     */
    public static BigDecimal nullDispose(BigDecimal parm) {
        if (ValidateUtil.isEmpty(parm)) {
            return BigDecimal.ZERO;
        }
        return parm;
    }

    /**
     * 空值处理，转为零(针对map.get())等情况
     *
     * @param obj 必须为数字
     * @return @
     */
    public static BigDecimal nullDispose(Object obj) {
        if (ValidateUtil.isEmpty(obj)) {
            return new BigDecimal(0);
        } else {
            if (obj instanceof BigDecimal) {
                return (BigDecimal) obj;
            } else {
                return new BigDecimal(obj.toString());
            }
        }
    }
    /**
     * BigDecimal转为integer，若BigDecimal为空则返回null
     * 数据库object转为integer-目前支持string,bigdecimal,integer
     *
     * @param o
     * @return
     */
    public static Integer bigDecimal2Integer(Object o) {
        if (ValidateUtil.isEmpty(o)) {
            return null;
        }
        if (o instanceof BigDecimal) {
            return ((BigDecimal) o).intValue();
        } else if (o instanceof String) {
            return Integer.valueOf((String) o);
        } else if (o instanceof Integer) {
            return (Integer) o;
        }
        return null;
    }

    public static void checkNumber(String sr){
        try {
            Long.parseLong(sr);
        }catch (Exception ex){
           throw new IllegalArgumentException("该参数应该为纯数字！");
        }
    }

}
